﻿using BCCommon;
using BCDto.TMS.FreightContact;
using BCDto.Website.User;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.TransportSpecificServiceConfig;
using BCEntity.TMS.TransportSpecificServiceConfig;
using BCEntity.TMS.TransportSpecificServiceConfigOverWrite;
using System.Collections.Generic;
using BCDto.TMS.TransportSpecificServiceConfigOverWrite;

namespace BCService.TMS.TransportSpecificServiceConfig
{
    public interface ITransportSpecificServiceConfigService
    {
        /// <summary>
        /// 添加新运输特殊服务费配置纪录
        /// </summary>
        /// <param name="transportSpecificServiceConfigRequestDto"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        TransportSpecificServiceConfigDto Add(TransportSpecificServiceConfigRequestDto transportSpecificServiceConfigRequestDto, AdminDto admin);

        /// <summary>
        /// 删除运输特殊服务费配置记录
        /// </summary>
        /// <param name="transportSpecificServiceConfigId"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        void Delete(long transportSpecificServiceConfigId, AdminDto admin);

        /// <summary>
        /// 获取运输特殊服务费配置记录
        /// </summary>
        /// <param name="transportSpecificServiceConfigId"></param>
        /// <returns></returns>
        TransportSpecificServiceConfigDto GetById(long transportSpecificServiceConfigId);


        /// <summary>
        /// 获取运输特殊服务费配置记录--[分页]
        /// </summary>
        /// <param name="admin"></param>
        /// <param name="vehicleTypeId"></param>
        /// <param name="specificServiceType"></param>
        /// <param name="serviceTitle"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        PageableList<TransportSpecificServiceConfigDto> GetList(AdminDto admin,int? vehicleTypeId ,string specificServiceType, string serviceTitle, int pageIndex, int pageSize);

        /// <summary>
        /// 获取运输特殊服务费配置记录
        /// </summary>
        /// <param name="vehicleTypeId"></param>
        /// <param name="specificServiceType"></param>
        /// <param name="serviceTitle"></param>
        /// <returns></returns>
        List<TransportSpecificServiceConfigDto> GetOnlyList(int? vehicleTypeId, string specificServiceType, string serviceTitle);

        /// <summary>
        /// 修改运输特殊服务费配置记录
        /// </summary>
        /// <param name="transportSpecificServiceConfigPutDto"></param>
        /// <param name="admin"></param>
        /// <returns></returns>
        TransportSpecificServiceConfigViewDto Update(TransportSpecificServiceConfigPutDto transportSpecificServiceConfigPutDto, AdminDto admin);
 

         
    }
}